package com.expert.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.expert.pojo.Project;
import com.expert.vo.ProjectInfoVo;
import com.expert.vo.ProjectOptions;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @ClassName: ProjectService
 * @Author: cxs
 * @Date: 2024/03/20 15:02
 * @Description:
 **/
public interface ProjectService extends IService<Project> {
    /**
     * 分页查询项目基本信息
     * @param page 当前页
     * @param pageSize 每页条数
     * @param projectStatus 项目状态
     * @param projectName 项目名
     * @param beginTime 项目评审时间范围开始
     * @param endTime  项目评审时间范围结束
     * @return Result<Page<Project>>
     */
    Page<Project> pageProjectService(Integer page, Integer pageSize, Integer projectStatus, String projectName, LocalDateTime beginTime, LocalDateTime endTime);

    /**
     * 添加项目信息
     * @param project 项目信息
     */
    void addProject(Project project);

    /**
     * 根据id获取项目信息
     * @param id
     * @return
     */
    Project getProjectById(Long id);

    /**
     * 修改项目信息
     * @param project
     */
    void updateProject(Project project);

    /**
     * 取消项目信息
     * @param id
     */
    void cancelProject(Long id);

    List<ProjectOptions> getProjectOptions();

    ProjectInfoVo getProjectInfo(Long id);

    Page<Project> pageExtractProjectService(Integer page, Integer pageSize, Integer projectStatus, String projectName, LocalDateTime beginTime, LocalDateTime endTime);

    /**
     * 获取项目信息
     * @param id
     * @return
     */
    ProjectInfoVo getProjectInfoById(Long id);
}
